Graphical user interfaces (GUIs) have become essential aspects of many computer applications and operating systems. Graphical controls may be provided in GUIs to trigger functions of application programs when a particular interface element is activated by a user. These graphical controls may be selectable buttons or other known interface elements.
The graphical controls may be arranged into a toolbar, which is a collection or strip of selectable buttons. The buttons are often icons containing distinct and easily recognized symbols or images that correspond with the functions they control. Buttons save space compared with textual descriptors. Toolbar based commands are generally invoked directly with a single click, so they are faster to use than menus or other interface elements that require additional navigation or input.
Toolbars are usually arranged in vertical columns or horizontal rows on the edges of a display window, and are often constrained in their position, such as directly below a standard menu bar. Computer operating systems may also include toolbars, usually at the top or bottom of the screen. Some toolbars are designed so users may reposition them on the screen for greater efficiency, or hide them altogether. The screen space required by a toolbar is generally proportional to the number of its displayed buttons. Useful screen space may be compromised by having too many toolbars, so typical toolbars present only the most frequently used application commands.
In electronic design automation (EDA), designs for integrated circuits (ICs) and circuit boards may be created and edited using computer displayed images and graphical controls, often in many separate applications. EDA tools may be extremely complex, reflecting the complexity of typical modern design processes. The manageability of EDA user interfaces has accordingly become increasingly important.
User interfaces for design tools may need to support multiple configurations to accommodate the various complex design tasks required. Conventional GUIs are however not always equipped to enable interface configuration to the extent needed for EDA tools. Current interfaces may not readily allow the various involved parties (e.g., software vendors, design firms, and individual users) to each customize their own toolbar or other interface element configurations in a compatible way.
Software vendors may for example periodically upgrade their products with bugfixes or with entirely new versions having better interfaces. Any interface customizations made by circuit designers and design firms that overwrite or otherwise destructively edit the new vendor provided interface control files may cause the software to behave in unintended ways. Yet designers and design firm computer aided design (CAD) groups often adapt vendor supplied EDA applications into a design framework in a customized or “aftermarket” fashion. Such assembly of various applications into a coherent design flow may help design firms streamline their designers' specific design activities in a more coordinated and efficient way.
In some cases, CAD groups and individual users may manually edit relevant interface control files to achieve limited control over interface configuration. This practice is however inconvenient and somewhat risky for all involved. Users may not have the programming skills to successfully customize an interface themselves, nor the authorization or permission of their CAD groups to even try. Further, improperly edited control files may prevent proper tool operation. This problem may lead to increased customer support calls to the software vendor, or potentially invalid output by the modified programs.
Accordingly, the inventor has developed a novel system to enable multi-layer configuration and incremental management of toolbars and other interface elements in application graphical user interfaces.